﻿#define _CRT_SECURE_NO_WARNINGS 1
////使⽤回调函数改造前
//#include <stdio.h>
//int add(int a, int b)
//{
//	return a + b;
//}
//int sub(int a, int b)
//{
//	return a - b;
//}
//int mul(int a, int b)
//{
//	return a * b;
//}
//int div(int a, int b)
//{
//	return a / b;
//}
//void calc(int (*pf)(int, int))
//{
//	int x = 0;
//	int y = 0;
//	int ret = 0;
//	printf("输入操作数：");
//	scanf("%d %d", &x, &y);
//	ret = pf(x, y);
//	printf("ret = %d\n", ret);
//}
//int main()
//{
//	
//	int input = 1;
//
//	do
//	{
//		printf("*********************\n");
//		printf(" 1:add    2.sub *****\n");
//		printf(" 3:mul    4.div *****\n");
//		printf("******   0.exit *****\n");
//		printf("请选择：");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			calc(add);
//			break;
//		case 2:
//			calc(sub);
//			break;
//		case 3:
//			calc(mul);
//			break;
//		case 4:
//			calc(div);
//			break;
//		case 0:
//			printf("退出程序\n");
//			break;
//		default:
//			printf("选择错误，请重新选择\n");
//			break;
//		}
//		}while (input);
//	}

//#include<stdio.h>
//#include<stdlib.h>
//#include<string.h>
//struct Stu
//{
//	char name[10];
//	int age;
//};
//void bubble_sort(int arr[], int sz)
//{
//	//先确定趟数
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - 1 - i; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
//}
//void Print_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int cmp_num(const void* p1, const void* p2)
//{
//	return (*(int*)(p1)) - (*(int*)(p2));
//}
//int cmp_by_name(const void* p1, const void* p2)
//{
//	return strcmp(((struct Stu*)(p1))->name, ((struct Stu*)(p2))->name);
//}
//
//int cmp_by_age(const void* p1, const void* p2)
//{
//	return (((struct Stu*)(p1))->age) - (((struct Stu*)(p2))->age);
//}
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
//	//int sz = sizeof(arr) / sizeof(arr[0]);
//	struct Stu S1[] = {{"zhangsan",15}, {"lisi",21},{"wangwu",12}};
//	int sz = sizeof(S1) / sizeof(S1[0]);
//	//bubble_sort(arr, sz);
//	//qsort(S1, sz, sizeof(S1[0]), cmp_by_name);
//	qsort(S1, sz, sizeof(S1[0]), cmp_by_age);
//	//Print_arr(arr,sz);
//	return 0;
//}
//


//#include<stdio.h>
//int main()
//{
//	int arr[] = { 1,3,2,9,7 };
//	int max = arr[2];
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	for (i = 0; i < sz; i++)
//	{
//		if (max < arr[i])
//		{
//			max = arr[i];
//		}
//	}
//	printf("%d ", max);
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//#include<string.h>
//struct Stu
//{
//	char name[10];
//	int age;
//};
//void Swap(char* buff1, char* buff2,size_t size) //每次交换一个字节
//{
//	int i = 0;
//	for (i = 0; i < size; i++)
//	{
//		char tmp = *buff1;
//		*buff1 = *buff2;
//		*buff2 = tmp;
//		buff1++;
//		buff2++;
//	}
//}
//void bubble_sort(void *base,size_t num,size_t size,int (*cmp)(const void * p1,const void *p2))
//{
//	//先确定趟数
//	int i = 0;
//	for (i = 0; i < num - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < num - 1 - i; j++)
//		{
//			//比较 arr[j]和 arr[j+1]
//			if (cmp((char*)base + j * size, (char*)base + (j + 1) * size) > 0)
//			{
//				Swap((char*)base + j * size, (char*)base + (j + 1) * size, size);
//			}
//		}
//	}
//}
//void Print_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int cmp_num(const void* p1, const void* p2)
//{
//	return (*(int*)(p1)) - (*(int*)(p2));
//}
//int cmp_by_name(const void* p1, const void* p2)
//{
//	return strcmp(((struct Stu*)(p1))->name, ((struct Stu*)(p2))->name);
//}
//
//int cmp_by_age(const void* p1, const void* p2)
//{
//	return (((struct Stu*)(p1))->age) - (((struct Stu*)(p2))->age);
//}
//int main()
//{
//	//int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
//	//int sz = sizeof(arr) / sizeof(arr[0]);
//	struct Stu S1[] = {{"zhangsan",15}, {"lisi",21},{"wangwu",12}};
//	int sz = sizeof(S1) / sizeof(S1[0]);
//	//bubble_sort(arr, sz);
//	//qsort(S1, sz, sizeof(S1[0]), cmp_by_name);
//	bubble_sort(S1, sz, sizeof(S1[0]), cmp_by_age);
//	bubble_sort(S1, sz, sizeof(S1[0]), cmp_by_name);
//	//bubble_sort(arr, sz, sizeof(arr[0]), cmp_num);
//	//Print_arr(arr,sz);
//	return 0;
//}

#include<stdio.h>
int main()
{
	int arr[] = { 0 };
	printf("%p ", arr);
	printf("%p ", &arr);
	return 0;
}